import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 创建 ArrayList 存放字符串
        ArrayList<String> strList = new ArrayList<>();

        // 输入字符串，直到输入为 !!end!!
        while (true) {
            String input = scanner.next();
            if (input.equals("!!end!!")) {
                break;
            }
            strList.add(input);
        }

        // 在头部新增 "begin"，尾部新增 "end"
        strList.add(0, "begin");
        strList.add("end");

        // 输出列表元素
        System.out.println(strList);

        // 输入字符串 str
        String str = scanner.next();

        // 判断是否包含 str，并输出下标
        boolean contains = strList.contains(str);
        int indexOf = contains ? strList.indexOf(str) : -1;
        System.out.println(contains);
        System.out.println(indexOf);

        // 从后往前找 str 的下标
        int lastIndexOf = strList.lastIndexOf(str);
        System.out.println(lastIndexOf);

        // 移除第 1 个元素（下标为 0），并输出
        String removedFirst = strList.remove(0);
        System.out.println(removedFirst);

        // 输出列表元素
        System.out.println(strList);

        // 将第 2 个元素（下标为 1）设置为新的字符串 str
        String newStr = scanner.next();
        strList.set(1, newStr);

        // 输出列表元素
        System.out.println(strList);

        // 输入字符串 str
        str = scanner.next();

        // 遍历 strList，将包含 str 的元素放入 strList1
        ArrayList<String> strList1 = new ArrayList<>();
        for (String s : strList) {
            if (s.contains(str)) {
                strList1.add(s);
            }
        }

        // 输出 strList1
        System.out.println(strList1);

        // 在 strList 中移除第一个等于 str 的元素
        strList.remove(str);

        // 输出 strList
        System.out.println(strList);

        // 清空 strList，输出内容、size 和 isEmpty
        strList.clear();
        System.out.println(strList + "," + strList.size() + "," + strList.isEmpty());

        scanner.close();
    }
}